import { get, post, put, del } from './api'

/**
 * 员工管理相关API - 通过Feign客户端实现负载均衡
 */

// 获取员工列表 - 通过Feign客户端实现负载均衡
export const getEmployeeList = (params) => {
  return get('/feign/employees', params)
}

// 根据用户ID获取员工信息 - 通过Feign客户端实现负载均衡
export const getEmployeeByUserId = (userId) => {
  return get(`/feign/employees/user/${userId}`)
}

// 根据员工工号获取员工信息 - 通过Feign客户端实现负载均衡
export const getEmployeeByEmployeeNo = (employeeNo) => {
  return get(`/feign/employees/no/${employeeNo}`)
}

// 根据部门获取员工列表 - 通过Feign客户端实现负载均衡
export const getEmployeesByDept = (deptName) => {
  return get(`/feign/employees/dept/${deptName}`)
}

// 根据上级ID获取下属员工列表 - 通过Feign客户端实现负载均衡
export const getEmployeesByManager = (managerId) => {
  return get(`/feign/employees/manager/${managerId}`)
}

// 创建员工 - 通过Feign客户端实现负载均衡
export const createEmployee = (data, createBy) => {
  return post(`/feign/employees?createBy=${createBy}`, data)
}

// 更新员工信息 - 通过Feign客户端实现负载均衡
export const updateEmployee = (userId, data, updateBy) => {
  return put(`/feign/employees/${userId}?updateBy=${updateBy}`, data)
}

// 删除员工（逻辑删除） - 通过Feign客户端实现负载均衡
export const deleteEmployee = (userId, updateBy) => {
  return del(`/feign/employees/${userId}?updateBy=${updateBy}`)
}

// 更新员工状态 - 通过Feign客户端实现负载均衡
export const updateEmployeeStatus = (userId, status, updateBy) => {
  return put(`/feign/employees/${userId}/status?status=${status}&updateBy=${updateBy}`)
}

// 生成员工工号 - 通过Feign客户端实现负载均衡
export const generateEmployeeNo = () => {
  return get('/feign/employees/generate-no')
}

// 检查员工工号是否存在 - 通过Feign客户端实现负载均衡
export const checkEmployeeNoExists = (employeeNo) => {
  return get(`/feign/employees/check-no/${employeeNo}`)
}

// 注意：后端已经通过EmployeeVO在getEmployeeList等接口中返回了完整的用户+员工信息
// 所有请求现在都通过Feign客户端进行负载均衡
